package com.tianshuo.aop.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

/**
 * EnableAspectJAutoProxy 默认情况下的会自动选择使用JDK的动态代理还是使用CGLIB代理
 * 1.当被代理的对象实现接口时,会使用的JDK的动态代理,实现接口,增强对象
 * 2.当被代理的对象没有实现接口时,会使用CGLIB动态代理,继承目标对象的,增强对象方法
 * 当然CGLIB也是可以通过实现接口,然后再继承接口动态代理的
 *
 * 默认
 * @EnableAspectJAutoProxy(proxyTargetClass = true) 强制使用CGLIB代理 对象名称包含：$$EnhancerBySpringCGLIB$$
 * @EnableAspectJAutoProxy(proxyTargetClass = false) 默认,由spring自己选择使用JDK动态代理还是使用CGLIB动态代理 $Proxy19
 */
@Configuration
@EnableAspectJAutoProxy
@ComponentScan("com.tianshuo.aop")
public class AopConfig {
}
